program lab1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes,
  { you can add units after this }
  sysutils;

var
  // а - массив действительных чисел от 0 до 63 (всего 64 числа)
  a: array [1..64] of real;
  // i - целое число, переменная инкремента для цикла (см. ниже)
  i: integer;
begin
  // randomize инициализирует генератор случайных чисел
  randomize;
  // для каждого i в диапазоне 0 - 63 генерируем случайное значение элемента массива a
  // это то же самое что "даны действительные числа"
  for i:=1 to 64 do
  begin
       a[i] := 0.1 * (random(10) * i);
  end;

  // выводим на экран заданный массив чисел a, делая переход на новую строку спустя каждые 8 чисел
  for i:=1 to 64 do
  begin
       // formatfloat из sysutils используется, чтобы таблица с числами выглядела "ровной" (задает фиксированный формат вывода)
       write(formatfloat('00.00 ', a[i]));
       // если целочисленный остаток от деления (mod) на 8 равен 0, то число выведенных чисел кратно 8, и нужно сделать переход на новую строку
       if (i mod 8 = 0) then writeln;
  end;
  // в конце программы нужно поставить readln, чтобы она ждала нажатия клавиши и не закрылась сразу же, не показав результаты своей работы
  readln;
end.

